# 04. 删除有序数组中的重复项 II
# 相比于上一题，这题额外要求了不要使用额外的数组空间。
# 并且超过两次的元素只出现 两次。
# 特别注意该数组是有序的！
# 从官方题解找方案
from typing import List

class Solution:
    def removeDuplicates(self, nums: List[int]) -> int:
        n = len(nums)
        if n <= 2:
            return n
        slow, fast = 2, 2
        while fast < n:
            if nums[slow-2] != nums[fast]:
                nums[slow] = nums[fast]
                slow += 1
            fast += 1
        return slow


if __name__ == '__main__':
    nums = [1,1,1,2,2,3]
    solution = Solution()

    length = solution.removeDuplicates(nums)
    for i in range(length):
        print(nums[i], end=',')